<?php
class SignInForm extends Form{
	function SignInForm(){
		Form::Form('SignIn');
	}
	
	function on_submit(){
		if(User::checkLock4Ever(1)){
			Url::redirect_current();
		}
		
		$user_name 	= AZLib::getParam('user_name_this');
		$password 	= AZLib::getParam('password_this');
		
		$this->checkFormInput('Tên truy cập','user_name',$user_name,'uname',true,'',4,50);	
		$this->checkFormInput('Mật khẩu truy cập','password',$password,'str',true,'',6,50);	
		
		// check de ban IP
		$ip = AZLib::ip();
		$arr_badwords = AZLib::checkBadWord($ip,true);		
		if($arr_badwords["bad"]!="" && $arr_badwords["bad_key"]!=""){
			$this->setFormError('ban_ip',"Có lỗi xẩy ra. Hãy kiểm tra lại");
		}
		// end check de ban IP
		
		if (!$this->errNum){
			$user_data=DB::fetch('SELECT id, user_name, password, is_active, block_time FROM user WHERE user_name="'.$user_name.'"');
			if(!USER_ACTIVE_ON  && $user_data && $user_data['is_active']){
				DB::query("UPDATE user SET is_active=0 WHERE id=".$user_data['id']);
				DB::delete('user_active','user_id='.$user_data['id']);
				User::getUser($user_data['id'],0,1);
			}
			if($user_data && $user_data['password'] == User::encode_password($password)){
				if(USER_ACTIVE_ON && $user_data['is_active']){//Chưa kích hoạt
					$this->setFormError('user_name',"Bạn chưa kích hoạt tài khoản!<br /><br />Bạn hãy check lại mail để kích hoạt lại tài khoản<br />
					hoặc <a href=''>click vào đây</a> để hệ thống gửi lại email kích hoạt!");	
				}
				else{
					$alert='';
					$href = base64_decode(Url::get('href'));
					
					if(!$href){
						$href=Url::build('home');
					}
					if($user_data['block_time']==-1){
						$this->setFormError('user_name',"Tài khoản hoặc mật khẩu không đúng!");	
					}
					elseif($user_data['block_time'] > TIME_NOW){
						
						$user_lock=DB::select('user_lock','user_id='.$user_data['id']);
						if($user_lock){
							if($user_lock['type']==1){//Khoá vĩnh viễn
								User::LogOut();
								DB::delete(_SESS_TABLE,'user_id='.$user_id,__LINE__.__FILE__);
								Url::access_denied();
							}		
							elseif($user_lock['type']==3){//Khoá vĩnh viễn + cookie
								User::lock4Ever(true,$user_data['id']);
								Url::access_denied();
							}
							else{
								if($user_lock['note'])
								$user_lock['note']='\nLý do: '.str_replace(array('"',"'"),'',$user_lock['note']);
								$alert='<script>
											alert("Tài khoản của bạn đang tạm khoá tới '.date('h:i, d/m/Y',$user_data['block_time']).'!'.$user_lock['note'].'");
											window.location="'.$href.'";
										</script>';
								//$this->setFormError('user_name',"Tài khoản của bạn đang tạm khoá tới ".date('d/m/Y H:i',$user_data['block_time'])."!".$user_lock['note']);		
							}
						}
						
						$_SESSION['user_lock']=true;
					}
					
					if(Url::get('set_cookie')=='on'){
						$year = 60 * 60 * 24 * 365 + TIME_NOW; 
						AZLib::my_setcookie("az_id", $user_data['id'], $year);
						AZLib::my_setcookie("password", $user_data['password'], $year);
					}
	
					$_SESSION['is_load_page_first'] = 1;// dung jQueryUI de load bang thong bao						
					
					User::LogIn($user_data['id']);
					
					if(isset($_SESSION['user_lock']) && $_SESSION['user_lock']){
						echo $alert;
						exit;
					}
					else{
						Url::redirect_url($href);
					}
				}
			}
			else{		
				$this->setFormError('user_name',"Tài khoản hoặc mật khẩu không đúng!");			
			}
		}
	}

	function draw(){
		global $display;
		
		$this->beginForm();
		$display->add('msg',$this->showFormErrorMessages(1));
		
		if(AZLib::getParam('page')=='sign_in'){
			$is_sign_in = 1;
		}
		else{
			$is_sign_in = 0;
		}
		
		$display->add('is_sign_in',$is_sign_in);				
		$display->add('user_name_this',AZLib::getParam('user_name_this'));				
		$display->add('password_this',AZLib::getParam('password_this'));				
		
		if(OPENID_ON){
			$href=Url::get('href');
			if($href){
					$display->add('url_openid',OID_URL.'?openid_identifier=http://me.yahoo.com/&long_redirect='.$href);
					$display->add('url_openid_gog', OID_URL.'index.html?openid_identifier=https://www.google.com/users/o8/id&long_redirect='.$href);
			}
			else{
				$display->add('url_openid',OID_URL.'?openid_identifier=http://me.yahoo.com/');
				$display->add('url_openid_gog',OID_URL.'index.html?openid_identifier=https://www.google.com/users/o8/id');
			}
		}
		
		$display->add('OPENID_ON',(int)OPENID_ON);
		
		$display->output('sign_in');
		$this->endForm();
	}
}
?>